第3章 基本設定
設定ファイルのフォーマット
code:nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user $time_local "$request" ' '$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log main;
sendfile on;
tcp_nopush on;
server {
listen 80;
server_name localhost;
root html;
index index.html index.htm;
}
}
ディレクティブ
パラメータが1つの場合
worker_processes 1;
パラメータを複数とる場合
error_log /var/log/nginx/error.log error;
複数パラメータを改行で区切って指定可能
code:複数パラメータ
log_format ltsv 'time:$time_local\t'`
'status:$status\t';
パラメータの書式
数値または文字列でシングルクォート or ダブルクォート
変数
$をつけると変数として評価される
HTTPコンテキストの定義
HTTPサーバーに関連する記述をhttpディレクティブを用いてhttpコンテキストに定義する。
table:httpディレクティブ
構文 http{...}
コンテキスト main
解説 httpコンテキストを定義する
バーチャルサーバーの定義
nginxでは使用するIPアドレス・ポート・ホスト名ごとに別々の設定を持つ、バーチャルサーバーというHTTPサーバーを複数動作させることができる。
table:serverディレクティブ
構文 server{...}
コンテキスト http
解説 バーチャルサーバーを定義する
ホスト名の指定
複数のホスト名指定可能
正規表現を使用できる。(チルダ~を先頭につける)
server_name ~img\d+\.example\.com;
table:server_nameディレクティブ
構文 server_name ホスト名 ...;
デフォルト値 なし
コンテキスト server
解説 バーチャルサーバーで使用するホスト名を指定する
複数バーチャルサーバーの優先順位
ホスト名の一致は完全一致=>ワイルドカード=>正規表現の順番に評価される
1. listerディレクティブのアドレスとポートに一致するバーチャルサーバーを検索
2. リクエストのHostヘッダがserver_nameディレクティブで指定したホストに一致したバーチャルサーバにリクエストを振り分ける
3. どのサーバにも一致しない場合デフォルトサーバにリクエストを振り分ける
公開するディレクトリを設定
table:rootディレクティブ
構文 root ディレクトリパス;
デフォルト値 html
コンテキスト http, server, location, location中のif
解説 サーバーの公開ディレクトリを指定する。
/var/www/htmlを指定する場合はroot /var/www/html;
nginxではrootディレクティブで指定したディレクトリのパスがそのURIのルートにマッピングされる。
MIMEタイプの指定
table:typeディレクティブ
構文 types{...}
デフォルト値 { text/html html; }
コンテキスト http, server, location
解説 ファイルの拡張子とMIMEタイプのマッピングを定義する